From 8b6f388cbc8f3fdd0b385776520e10cfb8424fe4 Mon Sep 17 00:00:00 2001 From: Richard Hult Date: Thu, 6 Sep 2007 08:16:40 +0000 Subject: [PATCH] Patch from William Pitcock: Ungrab windows if necessary when they are 2007-09-06 Richard Hult * gdk/quartz/gdkwindow-quartz.c (_gdk_windowing_window_destroy): Patch from William Pitcock: Ungrab windows if necessary when they are destroyed, fixes bug #473441. svn path=/trunk/; revision=18727 --- ChangeLog | 6 ++++++ gdk/quartz/gdkwindow-quartz.c | 9 +++++++++ 2 files changed, 15 insertions(+) diff --git a/ChangeLog b/ChangeLog index adb6039da4..f917889647 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2007-09-06 Richard Hult + + * gdk/quartz/gdkwindow-quartz.c (_gdk_windowing_window_destroy): + Patch from William Pitcock: Ungrab windows if necessary when they + are destroyed, fixes bug #473441. + Wed Sep 5 14:15:17 2007 Tim Janik * gtk/gtknotebook.c (gtk_notebook_class_init): fix wrong default value diff --git a/gdk/quartz/gdkwindow-quartz.c b/gdk/quartz/gdkwindow-quartz.c index 11360b07bd..5a8be2ee20 100644 --- a/gdk/quartz/gdkwindow-quartz.c +++ b/gdk/quartz/gdkwindow-quartz.c @@ -798,6 +798,15 @@ _gdk_windowing_window_destroy (GdkWindow *window, update_windows = g_slist_remove (update_windows, window); main_window_stack = g_slist_remove (main_window_stack, window); + /* If the destroyed window was targeted for a pointer or keyboard + * grab, release the grab. + */ + if (window == _gdk_quartz_pointer_grab_window) + gdk_pointer_ungrab (0); + + if (window == _gdk_quartz_keyboard_grab_window) + gdk_keyboard_ungrab (0); + if (!recursing && !foreign_destroy) { GdkWindowImplQuartz *impl = GDK_WINDOW_IMPL_QUARTZ (GDK_WINDOW_OBJECT (window)->impl); -- 2.30.2